package java_thinking.unit_17;

/**
 * @Desc:   并发 Collection
 *      1.用于多线程的Concurrent**** 当期望许多线程访问一个给定的collection 时，ConcurrentHashMap 通常优于同步的 HashMap
 *        ConcurrentSkipListMap 通常优于同步的 TreeMap，当期望的读数和遍历远远大于列表的更新数时，CopyOnWriteArrayList 优于
 *        同步的 ArrayList；
 *
 *      2.java.util.Hashtable 和 Collections.synchronizedMap(new HashMap()) 是同步的，但是但 ConcurrentHashMap 则是“并发的”。
 *        并发 collection 是线程安全的，但是不受单个排他锁的管理。在 ConcurrentHashMap 这一特定情况下，它可以安全地允许进行任
 *        意数目的并发读取，以及数目可调的并发写入。需要通过单个锁不允许对 collection 的所有访问时，“同步”类是很有用的，其代价
 *        是较差的可伸缩性。在期望多个线程访问公共 collection 的其他情况中，通常“并发”版本要更好一些。当 collection 是未共享的，
 *        或者仅保持其他锁时 collection 是可访问的情况下，非同步 collection 则要更好一些。
 *
 *      3.大多数并发 Collection 实现（包括大多数 Queue）与常规的 java.util 约定也不同，因为它们的迭代器提供了弱一致的，而不是
 *        快速失败的遍历。弱一致的迭代器是线程安全的，但是在迭代时没有必要冻结 collection，所以它不一定反映自迭代器创建以来的所
 *        有更新。
 * @author: cww
 * @DateTime: 2019-05-10 22:41
 */

public class ConcurrentTheory {
}
